package thread;
/**
 * 线程可以并发执行多个代码片段，使得这些代码片段之间运行是互不打扰的。
 * 
 * 创建线程有两种方式，方式一:
 * 继承Thread类并重写run方法。
 * 注:
 * run方法的内容就是该线程要执行的任务。
 * @author Xiloer
 *
 */
public class ThreadDemo1 {
	public static void main(String[] args) {		
		Thread t1 = new MyThread1();
		Thread t2 = new MyThread2();
		/*
		 * 启动线程要调用start方法，而不是run方法
		 */
		t1.start();
		t2.start();
	}
}
/**
 * 第一种创建线程的方式的优点是定义简单，适合匿名内部类形式创建。
 * 缺点主要有两个:
 * 1:java是单继承的，这导致继承了Thread就无法再继承其他类去复用方法了，这在
 *   实际开发时很不方便。
 * 2:将任务定义在线程中，会导致线程和任务存在必然的耦合关系，不利于线程的重用  
 * @author Xiloer
 *
 */
class MyThread1 extends Thread{
	public void run() {
		for(int i=0;i<1000;i++) {
			System.out.println("你是谁啊?");
		}
	}
}
class MyThread2 extends Thread{
	public void run() {
		for(int i=0;i<1000;i++) {
			System.out.println("我是查水表的!");
		}
	}
}








